﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using MySql.Data.MySqlClient;
using System.Text;

namespace DA
{
    public class Documents : GO.BaseClass
    {
        public VO.Documents objVO;

        public Documents()
        {
            objVO = new VO.Documents();
            sbSQL = new StringBuilder();
        }

        public void Salvar()
        {
            // MONTA A INSTRUÇÃO SQL
            sbSQL.Append(" INSERT INTO `Documents` (Titulo, Data, Arquivo, idUnidade, idLevel, idCategoria) ");
            sbSQL.Append(" VALUES('p_Titulo','p_Data', 'p_Arquivo', p_idUnidade, p_idLevel, p_idCategoria); ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_Titulo", objVO.Titulo);
            sbSQL.Replace("p_Data", objVO.Data.ToString("s"));
            sbSQL.Replace("p_Arquivo", objVO.Arquivo);
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());
            sbSQL.Replace("p_idLevel", objVO.IdLevel.ToString());
            sbSQL.Replace("p_idCategoria", objVO.IdCategoria.ToString());

            // EXECUTA INSTRUÇÃO
            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            // LIMPA VARIÁVEL
            sbSQL.Remove(0, sbSQL.Length);
        }

        public void Atualizar()
        {
            // MONTA A INSTRUÇÃO SQL
            sbSQL.Append(" UPDATE `Documents` SET");
            sbSQL.Append("     Titulo  = 'p_Titulo ',");
            sbSQL.Append("     Arquivo  = 'p_Arquivo ',");
            sbSQL.Append("     Data = 'p_Data',");
            sbSQL.Append("     idUnidade  = 'p_idUnidade',");
            sbSQL.Append("     idLevel  = 'p_idLevel',");
            sbSQL.Append("     idCategoria  = 'p_idCategoria'");
            sbSQL.Append(" WHERE ");
            sbSQL.Append(" 	   idDocuments   = p_idDocuments  ;        ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idDocuments", objVO.IdDocuments.ToString());
            sbSQL.Replace("p_Titulo", objVO.Titulo);
            sbSQL.Replace("p_Arquivo", objVO.Arquivo);
            sbSQL.Replace("p_Data", objVO.Data.ToString("s"));
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());
            sbSQL.Replace("p_idLevel", objVO.IdLevel.ToString());
            sbSQL.Replace("p_idCategoria", objVO.IdCategoria.ToString());

            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            sbSQL.Remove(0, sbSQL.Length);
        }

        public void Excluir()
        {

            sbSQL.Append(" DELETE FROM `Documents` ");
            sbSQL.Append(" WHERE idDocuments   = p_idDocuments  ; ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idDocuments", objVO.IdDocuments.ToString());

            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getTodosRegistros()
        {

            sbSQL.Append(" SELECT * FROM `Documents`; ");

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getRegistroById()
        {
            sbSQL.Append(" SELECT * FROM `Documents` ");
            sbSQL.Append(" WHERE idDocuments = p_idDocuments; ");
            sbSQL.Replace("p_idDocuments", objVO.IdDocuments.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getRegistroDocuments()
        {
            sbSQL.Append(" SELECT * FROM `Documents` ");
            sbSQL.Append(" ORDER BY Data ASC ");
            sbSQL.Append(" LIMIT 0,6; ");

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getTodosRegistroDocumentsByUnidade()
        {
            sbSQL.Append(" SELECT * FROM `Documents` ");
            sbSQL.Append("  WHERE idUnidade = p_idUnidade AND idLevel <= p_idLevel ");
            sbSQL.Append(" ORDER BY Data ASC ");
            
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());
            sbSQL.Replace("p_idLevel", objVO.IdLevel.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }
    }
}